/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package co.com.ces4.produccion.server.services;

import co.com.ces4.produccion.client.OrdenProduccionService;
import co.com.ces4.produccion.jpa.controllers.OrdenProduccionJpaController;
import co.com.ces4.produccion.jpa.controllers.exceptions.PreexistingEntityException;
import co.com.ces4.produccion.jpa.entities.OrdenProduccion;
import co.com.ces4.produccion.jpa.entities.SolicitudProduccion;
import co.com.ces4.produccion.jpa.entities.Usuario;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
import java.util.Date;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.http.HttpSession;

/**
 *
 * @author Sebastian
 */
public class OrdenProduccionServiceImpl extends RemoteServiceServlet implements OrdenProduccionService {

    public void guardarOrdenProduccion(OrdenProduccion ordenProduccion) throws RuntimeException {
        OrdenProduccionJpaController ordenProduccionJpaController = (OrdenProduccionJpaController) getServletContext().getAttribute("ordenProduccionJpaController");
        try {
            ordenProduccionJpaController.create(ordenProduccion);
        } catch (PreexistingEntityException ex) {
            Logger.getLogger(OrdenProduccionServiceImpl.class.getName()).log(Level.SEVERE, null, ex);
        } catch (Exception ex) {
            Logger.getLogger(OrdenProduccionServiceImpl.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public List<OrdenProduccion> getOrdenesProduccion() throws RuntimeException {
        OrdenProduccionJpaController ordenProduccionJpaController = (OrdenProduccionJpaController) getServletContext().getAttribute("ordenProduccionJpaController");
        return ordenProduccionJpaController.findOrdenProduccionEntities();
    }

    public List<OrdenProduccion> getOrdenProduccionList(Date fechaInicio, Date fechaFin, SolicitudProduccion solicitudProduccion) throws RuntimeException {
        OrdenProduccionJpaController ordenProduccionJpaController = (OrdenProduccionJpaController) getServletContext().getAttribute("ordenProduccionJpaController");
        return ordenProduccionJpaController.getOrdenProduccionList(fechaInicio, fechaFin, solicitudProduccion);
    }

    public Usuario getUserSession() throws RuntimeException {
        HttpSession sesion = getThreadLocalRequest().getSession();
        if (sesion == null) {
            return null;
        }

        Usuario user = (Usuario) sesion.getAttribute("user");
        return user;
    }
}
